<!--用在机加的过程能力趋势预判系统上-->
<template>
  <div style="margin: 0;padding: 0">
    <el-container>
      <!--页面表头设计-->
      <el-header style="height: 7vh">
        <el-link class="headMain" href="http://10.255.96.48:3404/">俄动力质量管理系统</el-link>
        <span class="center-text">过程能力监视系统</span>
        <el-popover
            placement="top-start"
            title="用户信息"
            width="200"
            trigger="hover">
          <div style="margin-top: 10px">Name：{{useName}}</div>
          <div style="margin-top: 10px">ID:{{useId}}</div>
          <div style="margin-top: 10px" @click="logOut"><el-link>退出</el-link></div>
          <div class="headMain" slot="reference">{{useName}}</div>
        </el-popover>
      </el-header>
      <el-container>
        <el-aside width="200px">
          <el-input
              placeholder="输入关键字进行过滤"
              v-model="filterText">
          </el-input>
          <el-tree style="margin: 10px 8px;"
                   :data="treeTesting"
                   :props="defaultProps"
                   default-expand-all
                   @node-click="treeClick"
                   :filter-node-method="filterNode"
                   highlight-current="highlight-current"
                   ref="tree"></el-tree>
        </el-aside>
        <el-container>
          <!--主题设计-->
          <el-main style="height: 79vh;overflow: auto">
            <el-tabs v-model="activeName" @tab-click="handleClick">
              <el-tab-pane label="检测项目" name="first">
                <div style="margin-top: 5px">
                  <el-link @click="tableShow(1,null)"
                  v-if="treeUseNode!==null && usePower===1">新增</el-link>
                </div>
                <div style="margin-top: 5px">
                  <el-table :data="tableData" style="width: 100%" border height="64vh">
                    <!-- 检测项目名称 project -->
                    <el-table-column
                        prop="project"
                        label="检测项目"
                        v-slot:default="scope">
                      <span v-if="scope.row.project.split('|*|').length<3">{{scope.row.project}}</span>
                      <span v-else-if="languageS==='chinese'">{{scope.row.project.split('|*|')[0]}}</span>
                      <span v-else-if="languageS==='english'">{{scope.row.project.split('|*|')[1]}}</span>
                      <span v-else-if="languageS==='russian'">{{scope.row.project.split('|*|')[2]}}</span>
                    </el-table-column>
                    <!-- 检测要求 requirement -->
                    <el-table-column
                        prop="requirement"
                        label="检测要求" v-slot:default="scope">
                      <span v-if="scope.row.requirement.split('|*|').length<3">{{scope.row.requirement}}</span>
                      <span v-else-if="languageS==='chinese'">{{scope.row.requirement.split('|*|')[0]}}</span>
                      <span v-else-if="languageS==='english'">{{scope.row.requirement.split('|*|')[1]}}</span>
                      <span v-else-if="languageS==='russian'">{{scope.row.requirement.split('|*|')[2]}}</span>
                    </el-table-column>
                    <!-- 测量类型 testType -->
                    <el-table-column
                        prop="testType"
                        label="测量类型"
                        width="80">
                    </el-table-column>
                    <!-- 上公差 ceiling -->
                    <el-table-column
                        prop="ceiling"
                        label="上公差"
                        width="80">
                    </el-table-column>
                    <!-- 下公差 lower -->
                    <el-table-column
                        prop="lower"
                        label="下公差"
                        width="80">
                    </el-table-column>

                    <!-- 标准值 standard -->
                    <el-table-column
                        prop="standard"
                        label="标准值"
                        width="80">
                    </el-table-column>

                    <!-- 检测频次 frequency -->
                    <el-table-column
                        prop="frequency"
                        label="检测频次"
                        width="80">
                    </el-table-column>

                    <!-- 实施部门 department -->
                    <el-table-column
                        prop="department"
                        label="实施部门"
                        width="110"
                        v-slot:default="scope">
                      <span v-if="languageS==='chinese'">{{scope.row.department.split('/')[0]}}</span>
                      <span v-if="languageS==='english'">{{scope.row.department.split('/')[1]}}</span>
                      <span v-if="languageS==='russian'">{{scope.row.department.split('/')[2]}}</span>
                    </el-table-column>
                    <!-- 编辑 -->
                    <el-table-column
                        prop="editName"
                        label="编辑"
                        width="80" v-if="usePower===1"
                        v-slot:default="scope">
                      <div v-if="scope.row.projectCon===2 || scope.row.projectCon===3">
                        <el-link @click="tableShow(2,scope)" style="margin-left: 10px"><i class="el-icon-edit"></i></el-link>
                        <el-link @click="tableShow(3,scope)" style="margin-left: 10px"><i class="el-icon-delete"></i></el-link>
                      </div>
                    </el-table-column>
                  </el-table>
                </div>
              </el-tab-pane>
              <el-tab-pane label="数据录入" name="second">
                <div style="text-align: left">
                    <el-form :inline="true" @submit.prevent>
                      <el-form-item label="工件号：">
                        <el-input v-model="partNum" @blur="partNumEdit" size="mini" style="width: 150px"></el-input>
                      </el-form-item>
                      <el-form-item label="检测日期：">
                        <el-date-picker
                            v-model="testDate"
                            type="date"
                            placeholder="选择日期"
                            value-format="yyyy-MM-dd"
                            format="yyyy-MM-dd"
                            style="width: 150px" size="mini">
                        </el-date-picker>
                      </el-form-item>
                      <el-form-item label="测量人：">
                        <el-input v-model="testName" style="width: 180px" size="mini"></el-input>
                      </el-form-item>
                      <el-form-item label="班次：">
                        <el-select v-model="workShift" placeholder="请选择" style="width: 180px" size="mini">
                          <el-option
                              v-for="item in workShiftOptions"
                              :key="item.value"
                              :label="item.label"
                              :value="item.value">
                          </el-option>
                        </el-select>
                      </el-form-item>
                      <el-form-item>
                        <el-button @click="tableTestSave" size="mini">保存</el-button>
                      </el-form-item>
                    </el-form>

                </div>
                <div style="margin-top: -5px">
                  <el-table :data="tableTest" style="width: 100%" border>
                    <!-- 检测项目名称 project -->
                    <el-table-column
                        prop="project"
                        label="检测项目"
                        v-slot:default="scope">
                      <span v-if="scope.row.project.split('|*|').length<3">{{scope.row.project}}</span>
                      <span v-else-if="languageS==='chinese'">{{scope.row.project.split('|*|')[0]}}</span>
                      <span v-else-if="languageS==='english'">{{scope.row.project.split('|*|')[1]}}</span>
                      <span v-else-if="languageS==='russian'">{{scope.row.project.split('|*|')[2]}}</span>
                    </el-table-column>
                    <!-- 检测要求 requirement -->
                    <el-table-column
                        prop="requirement"
                        label="检测要求" v-slot:default="scope">
                      <span v-if="scope.row.requirement.split('|*|').length<3">{{scope.row.requirement}}</span>
                      <span v-else-if="languageS==='chinese'">{{scope.row.requirement.split('|*|')[0]}}</span>
                      <span v-else-if="languageS==='english'">{{scope.row.requirement.split('|*|')[1]}}</span>
                      <span v-else-if="languageS==='russian'">{{scope.row.requirement.split('|*|')[2]}}</span>
                    </el-table-column>
                    <!-- 上公差 ceiling -->
                    <el-table-column
                        prop="ceiling"
                        label="上公差"
                        width="70">
                    </el-table-column>
                    <!-- 下公差 lower -->
                    <el-table-column
                        prop="lower"
                        label="下公差"
                        width="70">
                    </el-table-column>
                    <!-- 标准值 standard -->
                    <el-table-column
                        prop="standard"
                        label="标准值"
                        width="70">
                    </el-table-column>
                    <el-table-column
                        prop="partNum"
                        label="工件号"
                        width="140"
                        v-slot:default="scope">
                      <el-input v-model="scope.row.partNum"></el-input>
                    </el-table-column>
                    <el-table-column
                        prop="testDate"
                        label="检测日期"
                        width="130"
                        v-slot:default="scope">
                      <el-input v-model="scope.row.testDate"></el-input>
                    </el-table-column>
                    <el-table-column
                        prop="testName"
                        label="测量人"
                        width="100"
                        v-slot:default="scope">
                      <el-input v-model="scope.row.testName"></el-input>
                    </el-table-column>
                    <el-table-column
                        prop="testShift"
                        label="班次"
                        width="100"
                        v-slot:default="scope">
                      <el-select v-model="scope.row.testShift" placeholder="请选择" style="width: 80px">
                        <el-option
                            v-for="item in workShiftOptions"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                        </el-option>
                      </el-select>
                    </el-table-column>
                    <el-table-column
                        prop="testVal"
                        label="实测值"
                        width="100"
                        v-slot:default="scope">
                      <el-input v-model="scope.row.testVal" @input="testValEdit(scope)"></el-input>
                    </el-table-column>
                    <el-table-column
                    label="判定"
                    width="50px">
                      <span :style="{ backgroundColor: circleColor }" style="display: inline-block; width: 20px; height: 20px; border-radius: 50%;"></span>
                    </el-table-column>
                  </el-table>
                </div>
              </el-tab-pane>
              <el-tab-pane label="作业指导书" name="workBook">
                开发中
              </el-tab-pane>
              <el-tab-pane label="趋势管理" name="trendManagement">
                <div>
                  开发中
                </div>
              </el-tab-pane>
              <el-tab-pane label="原始数据" name="rawData">
                <div style="text-align: left">
                  <el-row :gutter="20">
                    <el-col :span="20">
                      <el-form :inline="true" @submit.prevent>
                        <el-form-item label="特性值：">
                          <el-select v-model="testProject" placeholder="请选择" style="width: 180px">
                            <el-option
                                v-for="item in testProjectOptions"
                                :key="item.value"
                                :label="item.label"
                                :value="item.value">
                            </el-option>
                          </el-select>
                        </el-form-item>
                        <el-form-item label="检测日期：">
                          <el-date-picker
                              v-model="testDate"
                              type="date"
                              placeholder="选择日期"
                              value-format="yyyy-MM-dd"
                              format="yyyy-MM-dd"
                              style="width: 180px">
                          </el-date-picker>
                        </el-form-item>
                        <el-form-item label="数量：">
                          <el-input v-model="testName" style="width: 180px"></el-input>
                        </el-form-item>
                        <el-form-item label="班次：">
                          <el-select v-model="workShift" placeholder="请选择" style="width: 180px">
                            <el-option
                                v-for="item in workShiftOptions"
                                :key="item.value"
                                :label="item.label"
                                :value="item.value">
                            </el-option>
                          </el-select>
                        </el-form-item>
                      </el-form>
                    </el-col>
                  </el-row>
                </div>
                <div style="margin-top: 5px">
                  <el-table :data="tableTestVal" style="width: 100%" border>
                    <!-- 检测项目名称 project -->
                    <el-table-column
                        prop="project"
                        label="检测项目"
                        v-slot:default="scope">
                      <span v-if="scope.row.project.split('|*|').length<3">{{scope.row.project}}</span>
                      <span v-else-if="languageS==='chinese'">{{scope.row.project.split('|*|')[0]}}</span>
                      <span v-else-if="languageS==='english'">{{scope.row.project.split('|*|')[1]}}</span>
                      <span v-else-if="languageS==='russian'">{{scope.row.project.split('|*|')[2]}}</span>
                    </el-table-column>
                    <!-- 检测要求 requirement -->
                    <el-table-column
                        prop="requirement"
                        label="检测要求" v-slot:default="scope">
                      <span v-if="scope.row.requirement.split('|*|').length<3">{{scope.row.requirement}}</span>
                      <span v-else-if="languageS==='chinese'">{{scope.row.requirement.split('|*|')[0]}}</span>
                      <span v-else-if="languageS==='english'">{{scope.row.requirement.split('|*|')[1]}}</span>
                      <span v-else-if="languageS==='russian'">{{scope.row.requirement.split('|*|')[2]}}</span>
                    </el-table-column>
                    <!-- 上公差 ceiling -->
                    <el-table-column
                        prop="ceiling"
                        label="上公差"
                        width="70">
                    </el-table-column>
                    <!-- 下公差 lower -->
                    <el-table-column
                        prop="lower"
                        label="下公差"
                        width="70">
                    </el-table-column>
                    <!-- 标准值 standard -->
                    <el-table-column
                        prop="standard"
                        label="标准值"
                        width="70">
                    </el-table-column>
                    <el-table-column
                        prop="partNum"
                        label="工件号"
                        width="140">
                    </el-table-column>
                    <el-table-column
                        prop="testDate"
                        label="检测日期"
                        width="130">
                    </el-table-column>
                    <el-table-column
                        prop="testName"
                        label="测量人"
                        width="100">
                    </el-table-column>
                    <el-table-column
                        prop="testShift"
                        label="班次"
                        width="100">
                    </el-table-column>
                    <el-table-column
                        prop="testVal"
                        label="实测值"
                        width="100">
                    </el-table-column>
                    <el-table-column
                        label="判定"
                        width="50px"
                        v-slot:default="scope">
                      <span
                          style="display: inline-block; width: 20px; height: 20px; border-radius: 50%; background-color: red"
                          v-if="scope.row.testVal>(scope.row.standard+scope.row.ceiling) || scope.row.testVal<(scope.row.standard+scope.row.lower)"></span>
                      <span
                          style="display: inline-block; width: 20px; height: 20px; border-radius: 50%; background-color: greenyellow"
                          v-else></span>
                    </el-table-column>
                  </el-table>
                </div>
              </el-tab-pane>
              <el-tab-pane label="管理中台" name="third">管理中台</el-tab-pane>
              <el-tab-pane label="模型说明" name="forth">模型说明</el-tab-pane>
            </el-tabs>
          </el-main>
          <el-footer>
            <el-button plain size="small" @click="languageSelect('chinese')">中  文</el-button>
            <el-button plain size="small" @click="languageSelect('russian')">Русский язык</el-button>
            <el-button plain size="small" @click="languageSelect('english')">English</el-button>
          </el-footer>
        </el-container>
      </el-container>
    </el-container>

    <!--弹窗放置区-->
    <!--新增、编辑项目的弹窗，这个页面只有自行控制的项目-->
    <el-dialog
        :title="titleUse"
        :visible.sync="tableFormDialog"
        width="610px"
        :before-close="handleClose">
      <el-form ref="tableForm" status-icon :model="tableForm"  label-width="100px">
        <div style="display: flex;">
          <div>
            <!-- 第一项内容 -->
            <el-form-item label="产品图号：">
              <el-input v-model="tableForm.drawing" placeholder="产品图号" disabled></el-input>
            </el-form-item>
          </div>
          <div>
            <!-- 第二项内容 -->
            <el-form-item label="工序号：">
              <el-input v-model="tableForm.op" placeholder="工序号" disabled></el-input>
            </el-form-item>
          </div>
        </div>
        <el-form-item label="实施部门：">
          <el-select v-model="tableForm.department" placeholder="实施部门" style="width: 100%">
            <el-option
                v-for="item in departmentOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="项目名称：" label-width="120">
          <el-input v-model="tableForm.project" placeholder="项目名称"></el-input>
        </el-form-item>
        <el-form-item label="projectName：" label-width="120">
          <el-input v-model="text1" placeholder="项目名称"></el-input>
        </el-form-item>
        <el-form-item label="Название проекта：" label-width="130">
          <el-input v-model="text2" placeholder="项目名称"></el-input>
        </el-form-item >
        <el-form-item label="检测要求：" label-width="150">
          <el-input v-model="tableForm.requirement" placeholder="检测要求"></el-input>
        </el-form-item>
        <el-form-item label="testing requirements：" label-width="150">
          <el-input v-model="text3" placeholder="检测要求"></el-input>
        </el-form-item>
        <el-form-item label="Требования к проверке：" label-width="150">
          <el-input v-model="text4" placeholder="检测要求"></el-input>
        </el-form-item>
        <div style="display: flex;">
          <div>
            <!-- 第一项内容 -->
            <el-form-item label="检测频次：">
              <el-select v-model="tableForm.frequency" placeholder="频次" style="width: 100%">
                <el-option
                    v-for="item in frequencyOptions"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
          </div>
          <div>
            <!-- 第二项内容 -->
            <el-form-item label="检测类型：">
              <el-select v-model="tableForm.testType" placeholder="请选择" style="width: 100%">
                <el-option
                    v-for="item in testTypeOptions"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
          </div>
        </div>
        <div style="display: flex;" v-if="tableForm.testType===1">
          <div>
            <!-- 第一项内容 -->
            <el-form-item label="标准值：">
              <el-input v-model="tableForm.standard" placeholder="标准值"></el-input>
            </el-form-item>
          </div>
          <div>
            <!-- 第二项内容 -->
            <el-form-item label="上公差：">
              <el-input v-model="tableForm.ceiling" placeholder="上公差"></el-input>
            </el-form-item>
          </div>
          <div>
            <!-- 第三项内容 -->
            <el-form-item label="下公差：">
              <el-input v-model="tableForm.lower" placeholder="下公差"></el-input>
            </el-form-item>
          </div>
        </div>
        <el-form-item label="信息确认：">
          <el-button type="primary" @click="tableFormDialog=false">取消</el-button>
          <el-button @click="tableDataEdit">确认提交</el-button>
        </el-form-item>
      </el-form>
    </el-dialog>
    <!--抽屉放置区域-->
  </div>
</template>

<script>
import {
  departmentOptions,
  frequencyOptions,
  testTypeOptions,
  tree_amc_product_op_chinese,
} from "@/configUse";
import _ from "lodash";

export default {
  name: "macTestCon",
  components: {},
  data() {
    return {
      activeName: 'first',
      //用户权限相关的变量
      useName: '',//用户名称
      useId: '',//用户编号
      usePower: '',//用户权限
      //记录用户选择的语言
      languageS:'chinese',
      //导航栏相关的变量
      filterText:'',
      treeTesting:tree_amc_product_op_chinese,
      //树形的导航用到的数据模板
      defaultProps: {
        children: 'children',
        label: 'label'
      },
      //用户点击了哪一个工序
      treeUseOp:'',
      //用户点击了那个产品
      treeUseProduct:'',
      //用户点击的树形结构节点
      treeUseNode:null,
      //检测项目的主表
      tableData: [{
        id: null, // 主键
        establishTime: null, // 创建时间
        updateTime: null, // 修改时间
        deleteSign: 0, // 删除标记位 (假设0表示未删除)
        editName: '', // 编辑人
        workshop: '', // 车间名称三种语言（‘/’分割）
        drawing: '', // 产品图号
        op: '', // 工序号
        project: '', // 检测项目名称（三种语言，用||隔开）
        requirement: '', // 检测要求（三种语言，用||隔开）
        testType: '', // 测量类型（是一个固定的内容：计量、计数、目视）
        ceiling: 0.0, // 上公差
        lower: 0.0, // 下公差
        standard: 0.0, // 标准值
        frequency: '', // 检测频次（是一个固定内容，查附录）
        department: '', // 实施部门（是一个固定值，查附录）
        projectCon: 0, // 检测类型，和控制计划的关系（固定值，查附录）
        orderNumber: 0, // 顺序号
        controlTesting: 0 // 控制计划关联号（记录控制计划id）
      }],
      //检测项目的表单控制
      tableForm:{
        id: null, // 主键
        establishTime: null, // 创建时间
        updateTime: null, // 修改时间
        deleteSign: 0, // 删除标记位 (假设0表示未删除)
        editName: '', // 编辑人
        workshop: '', // 车间名称三种语言（‘/’分割）
        drawing: '', // 产品图号
        op: '', // 工序号
        project: '', // 检测项目名称（三种语言，用||隔开）
        requirement: '', // 检测要求（三种语言，用||隔开）
        testType: 1, // 测量类型（是一个固定的内容：计量、计数、目视）
        ceiling: 0.0, // 上公差
        lower: 0.0, // 下公差
        standard: 0.0, // 标准值
        frequency: '', // 检测频次（是一个固定内容，查附录）
        department: '', // 实施部门（是一个固定值，查附录）
        projectCon: 0, // 检测类型，和控制计划的关系（固定值，查附录）
        orderNumber: 0, // 顺序号
        controlTesting: 0 // 控制计划关联号（记录控制计划id）
      },
      //记录检测结果，用在用户录入界面；
      tableTest:[
        {
          id: null, // 主键
          establishTime: null, // 创建时间
          updateTime: null, // 修改时间
          deleteSign: 0, // 删除标记位 (假设0表示未删除)
          editName: '', // 编辑人
          workshop: '', // 车间名称三种语言（‘/’分割）
          drawing: '', // 产品图号
          op: '', // 工序号
          project: '', // 检测项目名称（三种语言，用||隔开）
          requirement: '', // 检测要求（三种语言，用||隔开）
          testType: 1, // 测量类型（是一个固定的内容：计量、计数、目视）
          ceiling: 0.0, // 上公差
          lower: 0.0, // 下公差
          standard: 0.0, // 标准值
          testVal:null,//测量值
          testName:'',//检测人名称
          testDate:'',//检测时间
          testShift:'',//检测班次
          partNum:'',//工件号
        }
      ],
      tableTestForm:{

      },
      //记录检查结果，用在用户查询原始数据的界面；
      tableTestVal:[
        {
          id: null, // 主键
          establishTime: null, // 创建时间
          updateTime: null, // 修改时间
          deleteSign: 0, // 删除标记位 (假设0表示未删除)
          editName: '', // 编辑人
          workshop: '', // 车间名称三种语言（‘/’分割）
          drawing: '', // 产品图号
          op: '', // 工序号
          project: '', // 检测项目名称（三种语言，用||隔开）
          requirement: '', // 检测要求（三种语言，用||隔开）
          testType: 1, // 测量类型（是一个固定的内容：计量、计数、目视）
          ceiling: 0.0, // 上公差
          lower: 0.0, // 下公差
          standard: 0.0, // 标准值
          testVal:null,//测量值
          testName:'',//检测人名称
          testDate:'',//检测时间
          testShift:'',//检测班次
          partNum:'',//工件号
        }
      ],
      //主表的点击编辑类型
      tableDoe:0,
      //主表的点击行信息
      tableScope:null,
      //弹窗的控制变量
      //弹窗标题
      titleUse:'提示',
      tableFormDialog:false,
      //选择器的变量
      testTypeOptions:testTypeOptions,//检测类型选择器变量
      frequencyOptions:frequencyOptions,//检测频次选择器变量
      departmentOptions:departmentOptions,//检测部门选择器变量
      workShiftOptions:[
        {value:'早班/morning Shift/Ранняя смена',label:'早班/morning Shift/Ранняя смена'},
        {value:'中班/middle shift/Средний класс',label:'中班/middle shift/Средний класс'},
        {value:'夜班/night shift/Ночная работа',label:'夜班/night shift/Ночная работа'},
      ],//生产班次选择器变量
      testProjectOptions:[
        {label:'',value:''}
      ],//所选工序的特性值选择器

      //其他的选择变量：
      testDate:'',//检测日期
      partNum:'',//工件号，检测数据录入的中间变量
      testName:this.name+'-'+this.useId,
      workShift:null,//记录班次选择器的变量
      testProject:null,//记录所选工序的特性名称


      //控制检测结果是否正确的变量
      circleColor:'black',

      //用在需要辅助输入内容的地方
      text1:'',
      text2:'',
      text3:'',
      text4:'',
    }
  },
  watch: {
    //监视导航筛选
    filterText(val) {
      this.$refs.tree.filter(val);
    },
    //监视检测日期变化的函数
    testDate(newValue) {
      for (let i = 0; i < this.tableTest.length; i++) {
        this.$set(this.tableTest, i, { ...this.tableTest[i], testDate: newValue });
      }
    },
    //监视班次的变化
    workShift(newValue){
      for (let i = 0; i < this.tableTest.length; i++) {
         this.$set(this.tableTest, i, { ...this.tableTest[i], testShift: newValue });
      }
    },
  },
  methods: {
    //选择语言的
    languageSelect(language){
      this.languageS=language
    },
    //退出登录
    logOut(){
      localStorage.removeItem('u_token');
      localStorage.removeItem('userName')
      this.$router.push('UserLogin')
    },
    //查询用户信息的函数
    inquiry(){
      //输入用户编号，向后端查询信息
      const useId=localStorage.getItem('userName').replace(/"/g, '');
      this.$request.post('/useQueryPower',{
        queryFiledName:'macTestCon',
        userId:useId,
      }).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        }else {
          this.useName=result.data.name
          this.usePower=result.data.macTestCon
          this.useId=useId
        }
      })
    },
    // 通用，弹窗关闭的时候
    handleClose(done) {
      this.$confirm('确认关闭？')
          // eslint-disable-next-line no-unused-vars
          .then(_ => {
            done();
          })
          // eslint-disable-next-line no-unused-vars
          .catch(_ => {});
    },
    // 通用，判断是不是数字的函数
    isNumber(value) {
      // 使用正则表达式检查是否是数字（包括正负数和小数）
      const regex = /^-?\d+(\.\d+)?$/;
      return regex.test(value);
    },
    //在tab控件上单击的函数
    handleClick(tab, event) {
      console.log(tab, event,tab._props.name,tab.name);
      if (tab.name==='second'){
        this.testName=this.useName+'/'+this.useId
        //先把数据归零，然后再重新赋值
        this.tableTest=[]
        this.tableTest=_.cloneDeep(this.tableData)
        this.circleColor='black'
        for (let i = 0; i < this.tableTest.length; i++) {
          this.tableTest[i].testName=this.testName
        }
      }
    },
    //导航筛选的函数
    filterNode(value, data) {
      if (!value) return true;
      return data.label.indexOf(value) !== -1;
    },
    //点击导航进行的筛选
    treeClick(data,node){
      this.treeUseOp=data.label
      this.treeUseNode=node
      //向后端进行筛选，走的接口是按照3个字段进行筛选的方法,筛选出来的是检测项目；
      this.$request.post('macTestConInquiryThreeField',{
        firstFieldName:'workshop',
        firstFieldVal:'机加车间/Machining workshop/Цех механической обработки',
        secondFieldName:'drawing',
        secondFieldVal:node.parent.data.label,
        thirdName:'op',
        thirdVal:data.label
      })
          .then(result=>{
            if (result.code === 401) {
              this.$router.push('UserLogin')
              alert("您未登录，请登录")
            }else {
              //给大表赋值
              this.tableData=result.data
              this.testProject=null
              this.testProjectOptions=[]
              this.tableTest=[]
              //给检测列表赋值
              this.tableTest=_.cloneDeep(this.tableData)
              //设置检测列表的测量人赋值，给测量结果页面的特性选择器赋值；
              for (let i = 0; i < this.tableTest.length; i++) {
                this.$set(this.tableTest, i, { ...this.tableTest[i], testName: this.useName+'/'+this.useId });
                let testProject={label:this.tableTest[i].project,value:this.tableTest[i].project}
                this.testProjectOptions.push(testProject)
              }
            }
      })
      //向后端进行筛选，走的接口是按照5个字段进行筛选的方法,筛选出来的是检测结果；
      //五个特性的排序是：前4个字段是相等，第五个字段是筛选的数量;前四个是字符串，第五个是数值；
      this.$request.post('macTestConValInquiryFiveField',{
        firstFieldName:'workshop',
        firstFieldVal:'机加车间/Machining workshop/Цех механической обработки',
        secondFieldName:'drawing',
        secondFieldVal:node.parent.data.label,
        thirdName:'op',
        thirdVal:data.label,
        fourthName:'nothing',
        fourthVal:'',
        fifthName:'num',
        fifthVal:125,
      })
          .then(result=>{
                if (result.code === 401) {
                  this.$router.push('UserLogin')
                  alert("您未登录，请登录")
                }else {
                  this.tableTestVal=result.data
                }
          })
    },
    //点击检测项目的弹窗,1:新增；2：编辑；3：删除
    tableShow(doe,scope){
      this.tableDoe=doe
      this.tableScope=scope
      if (this.treeUseNode===null || !this.treeUseNode.data.label.includes('OP')){
        this.$message.error('请选择工序后进行操作')
        return
      }
      //是新增
      if (doe===1){
        //数据初始化
        this.tableForm={
              id: null, // 主键
              deleteSign: 1, // 删除标记位 (假设0表示未删除)
              editName: this.useName, // 编辑人
              workshop:'机加车间/Machining workshop/Цех механической обработки', // 车间名称三种语言（‘/’分割）
              drawing: this.treeUseNode.parent.data.label, // 产品图号
              op: this.treeUseNode.data.label, // 工序号
              project: '', // 检测项目名称（三种语言，用||隔开）
              requirement: '', // 检测要求（三种语言，用||隔开）
              testType: 1, // 测量类型（是一个固定的内容：计量、计数、目视）
              ceiling: '', // 上公差
              lower: '', // 下公差
              standard: '', // 标准值
              frequency: '', // 检测频次（是一个固定内容，查附录）
              department: '', // 实施部门（是一个固定值，查附录）
              projectCon: 2, // 检测类型，和控制计划的关系（固定值，查附录）
              orderNumber: 0, // 顺序号
              controlTesting: -1 // 控制计划关联号（记录控制计划id）
        }
        this.text1=''
        this.text2=''
        this.text3=''
        this.text4=''
        this.titleUse='您正在新建一条检查项目'
        this.tableFormDialog=true
      }
      //是编辑
      else if (doe===2){
        //赋值
        this.tableForm=_.cloneDeep(scope.row)
        this.text1=this.tableForm.project.split('|*|')[1]
        this.text2=this.tableForm.project.split('|*|')[2]
        this.tableForm.project=this.tableForm.project.split('|*|')[0]

        this.text3=this.tableForm.requirement.split('|*|')[1]
        this.text4=this.tableForm.requirement.split('|*|')[2]
        this.tableForm.requirement=this.tableForm.requirement.split('|*|')[0]

        this.titleUse='您正在修改一条检查项目'
        this.tableFormDialog=true
      }
      //是删除
      else if (doe===3){
               //赋值
        this.tableForm=_.cloneDeep(scope.row)
        this.titleUse='您正在删除一条检查项目'
        this.tableFormDialog=true
      }
    },
    //对检测项目进行编辑、新增、删除等
    tableDataEdit(){
      //数据校验
      if (this.tableForm.department==='' || this.tableForm.department===null || this.tableForm.department===undefined){
        this.$message.error('请选择部门')
        return;
      }
      if (this.tableForm.project==='' || this.tableForm.project===null || this.tableForm.project===undefined){
        this.$message.error('请写入中文检测项目')
        return
      }
      if (this.text1==='' || this.text1===null || this.text1===undefined){
        this.$message.error('请写入英文检测项目')
        return;
      }
      if (this.text2==='' || this.text2===null || this.text2===undefined){
        this.$message.error('请写入俄文检测项目')
        return;
      }
      if (this.tableForm.requirement==='' || this.tableForm.requirement===null || this.tableForm.requirement===undefined){
        this.$message.error('请写入中文检测要求')
        return;
      }
      if (this.text3==='' || this.text3===null || this.text3===undefined){
        this.$message.error('请写入英文检测要求')
        return;
      }
      if (this.text4==='' || this.text4===null || this.text4===undefined){
        this.$message.error('请写入俄文检测要求')
        return;
      }
      if (this.tableForm.frequency==='' || this.tableForm.frequency===null || this.tableForm.frequency===undefined){
        this.$message.error('请写入检测频次')
        return;
      }
      if (this.tableForm.ceiling==='' || this.tableForm.ceiling===null || this.tableForm.ceiling===undefined){
        this.$message.error('请写入上公差')
        return;
      }
      if (this.tableForm.lower==='' || this.tableForm.lower===null || this.tableForm.lower===undefined){
        this.$message.error('请写入下公差')
        return;
      }
      if (this.tableForm.standard==='' || this.tableForm.standard===null || this.tableForm.standard===undefined){
        this.$message.error('请写入标准值')
        return;
      }
      if (this.tableForm.ceiling<=this.tableForm.lower){
        this.$message.error('公差带范围异常，请核对')
        return;
      }

       if (!this.isNumber(this.tableForm.standard)){
        this.$message.error('标准值非数字，请更改')
        return;
      }
      if (!this.isNumber(this.tableForm.ceiling)){
        this.$message.error('上公差非数字，请更改')
        return;
      }
      if (!this.isNumber(this.tableForm.lower)){
        this.$message.error('下公差非数字，请更正')
        return;
      }
      //组合数据
      this.tableForm.project=this.tableForm.project+'|*|'+this.text1+'|*|'+this.text2
      this.tableForm.requirement=this.tableForm.requirement+'|*|'+this.text3+'|*|'+this.text4
      //向后端写入数据
      //是新增
      if (this.tableDoe===1){
        this.$request.post('macTestConInsertOne',this.tableForm).then(result=>{
          if (result.code === 401) {
            this.$router.push('UserLogin')
            alert("您未登录，请登录")
          }else {
            this.$message.success('插入成功')
            this.tableData.push(this.tableForm)
            this.tableFormDialog=false
          }
        })
      }
      //是修改
      else if (this.tableDoe===2){
        this.$request.post('macTestConEditOne',this.tableForm).then(result=>{
          if (result.code === 401) {
            this.$router.push('UserLogin')
            alert("您未登录，请登录")
          }else {
            this.$message.success('修改成功')
            this.tableFormDialog=false
          }
        })
      }
      //是删除
      else if (this.tableDoe===3){
        this.$request.post('macTestConEditOneField',{
          id:this.tableForm.id,
          firstFieldName:'deleteSign',
          firstFieldVal:0,
        }).then(result=>{
          if (result.code === 401) {
            this.$router.push('UserLogin')
            alert("您未登录，请登录")
          }else {
            this.tableData.splice(this.tableScope.$index,1)
            this.$message.success('删除成功')
            this.tableFormDialog=false
          }
        })
      }
    },
    //当工件号失去焦点的时候，触发的函数
    partNumEdit(){
      //
      for (let i = 0; i < this.tableTest.length; i++) {
         this.$set(this.tableTest, i, { ...this.tableTest[i], partNum: this.partNum });
      }
    },
    //当用户输好一个测量值以后，判断是否合格
    testValEdit(scope){
      //判断数字是否非法
      if (scope.row.testVal===''){
        this.circleColor='black'
        return;
      }
      if (!this.isNumber(scope.row.testVal)){
        this.$message.error('输入了非法字符')
        return;
      }

      if (Number(scope.row.testVal) < Number(scope.row.standard + scope.row.lower) || Number(scope.row.testVal) > Number(scope.row.standard + scope.row.ceiling)){
        this.circleColor='red'
      }
      else {
        this.circleColor='green'
      }
    },
    //点击保存输入的检测数据
    tableTestSave(){
      //进行数据校核
      let isOk=1
      let temp=[]
      const h = this.$createElement;

      for (let i = 0; i < this.tableTest.length; i++) {
        if (!this.isNumber(Number(this.tableTest[i].testVal)) && this.tableTest[i].testVal!=='' && this.tableTest[i].testVal!==undefined){
          this.$notify({
            title: '数据错误',
            message: h('i', { style: 'color: teal'}, '第'+(i+1)+'行数据非法，请调整')
          });
          isOk=0
        }
        else if (this.isNumber(Number(this.tableTest[i].testVal))){
          if (this.tableTest[i].partNum==='' || this.tableTest[i].testDate===undefined){
            this.$message.error('存在未填写的工件号')
            isOk=0
          }
          if (this.tableTest[i].testName==='' || this.tableTest[i].testName===undefined){
            this.$message.error('存在未填写的检测人')
            isOk=0
          }
          if (this.tableTest[i].testDate==='' || this.tableTest[i].testDate===undefined){
            this.$message.error('检测日期未填写')
            isOk=0
          }
        }
      }
      if (isOk===1){
        temp=[]
        for (let i = 0; i < this.tableTest.length; i++) {
          if (this.tableTest[i].testVal!=='' && this.tableTest[i].testVal!==undefined){
            temp.push(this.tableTest[i])
          }
        }
        if (temp.length===0){
          this.$message.error('无数据需要保存.')
        }
        else {
          //向后端传递数据，走一个新的端口，是多行保存检测数据的
          console.log(temp)
          this.$request.post('/testValMacTestCon',temp).then(result=>{
            if (result.code === 401) {
              this.$router.push('UserLogin')
              alert("您未登录，请登录")
            }else {
              if (result.data==='保存成功'){
                this.$message.success('保存成功')
              }
              else {
                this.$message.error('保存失败，请联系管理员')
              }
            }
          })
        }
      }
    }

  },
  mounted() {
    this.inquiry()
    this.tableData=[]
    this.testName=this.useName+'-'+this.useId
    this.tableTest=[]

  }
}
</script>

<style scoped>
/* 主体左侧的工作步骤栏用到的数据包围的div的样式*/

.el-footer {
  background-color: #ffffff;
  color: #333;
  text-align: center;
  border-width: 3px; /* 设置边框宽度为3像素 */
  border-color: blue; /* 设置边框颜色为蓝色 */
  border-style: solid; /* 设置边框样式为实线 */
  padding: 10px; /* 添加内边距 */
  border-left-color: white;
  border-top: white;
}

.el-aside {
  background-color: #ffffff;
  color: #333;
  text-align: center;
  border-width: 3px; /* 设置边框宽度为3像素 */
  border-color: blue; /* 设置边框颜色为蓝色 */
  border-style: solid; /* 设置边框样式为实线 */
  padding: 10px; /* 添加内边距 */
  height: 89vh;
}

.el-main {
  color: #333;
  text-align: center;
  border-width: 3px; /* 设置边框宽度为3像素 */
  border-color: blue; /* 设置边框颜色为蓝色 */
  border-left-color: white;
  border-style: solid; /* 设置边框样式为实线 */
  padding: 10px; /* 添加内边距 */
}

body > .el-container {
  margin-bottom: 40px;
}

.el-container:nth-child(5) .el-aside,
.el-container:nth-child(6) .el-aside {
  line-height: 260px;
}

.el-container:nth-child(7) .el-aside {
  line-height: 320px;
}

.headMain{
  color: #ffffff; /* 设置字体颜色为红色 */
  font-size: 18px;
}
.center-text {
  /* 使用 margin-left 和 margin-right auto 来实现居中效果 */
  margin-left: auto;
  margin-right: auto;
  /* 注意：如果 header 内只有这两个元素，你可能不需要 margin-right: auto */
}

/*自定义样式*/
</style>